블록 암호 운용 모드

블록 암호 운용 모드

ECB의 보안 결함을 극복하기 위해 개발된 대안 기법들

운용 모드 비교

모드 설명 용도
ECB 각 블록 독립 암호화 (동일 키) 단일 값 안전 전송 (암호화 키 등)
CBC 이전 암호문과 XOR 후 암호화 일반 블록 기반 전송
CFB 이전 암호문을 암호화해 키스트림 생성, XOR 스트림 기반 전송
OFB 암호화 출력을 다음 입력으로 (피드백) 노이즈 채널 스트림 전송
CTR 카운터 암호화값과 평문 XOR 고속 처리, 병렬 처리

ECB (Electronic CodeBook)

평문 블록 → [암호화(동일 키)] → 암호문 블록
평문 블록 → [암호화(동일 키)] → 암호문 블록   (독립, 병렬 가능)

문제점: 동일한 평문 블록 → 동일한 암호문 블록
→ 반복 패턴 노출, 장문 메시지에 취약


CBC (Cipher Block Chaining)

IV
 ↓ XOR
평문1 → [암호화] → 암호문1
              ↓ XOR
        평문2 → [암호화] → 암호문2

CFB (Cipher Feedback)

IV → [암호화] → 상위 s비트 → XOR → 암호문
                                ↑
                              평문
암호문 → [쉬프트 레지스터] → 다음 입력

OFB (Output Feedback)

CFB와 차이: 암호화 출력(평문 XOR 전)을 다음 입력으로 사용

CFB: 암호문 → 다음 입력 (평문에 의존)
OFB: 암호화 출력 → 다음 입력 (평문에 무관)

OFB 장점: 비트 오류가 이후 블록에 전파되지 않음 (위성 통신 등 노이즈 채널에 적합)


CTR (Counter)

Counter_1 → [암호화] → XOR → 암호문1
Counter_2 → [암호화] → XOR → 암호문2  (병렬 처리 가능)
              ↑                ↑
            평문1            평문2

장점

장점 설명
병렬 처리 각 블록 독립적, 앞 블록 처리 전 다음 블록 선처리 가능
Preprocessing 평문 없이도 암호화 연산 미리 수행
랜덤 접근 임의 블록 직접 복호화 가능
하드웨어 효율 단순한 카운터 연산

관련 개념